home *** CD-ROM | disk | FTP | other *** search
/ Aminet 8 / Aminet 8 (1995)(GTI - Schatztruhe)[!][Oct 1995].iso / Aminet / text / edit / FrexxShell.lha / FrexxShell.FPL.README < prev   
Text File  |  1995-07-07  |  4KB  |  80 lines

  1. ############################################
  2. File:        FrexxShell.FPL
  3. Author:        Carsten Orthbandt
  4. Email:        s6357@fb1.fhtw-berlin.de
  5. Short:        gives you a virtual shell in FrexxEd.
  6. Version:    1.0
  7. Date:        5.7.95
  8. Local settings:
  9. Global settings:
  10. Keysequence:    "Enter","Tab"
  11. Type:        Key/Function
  12. Prereq:        FrexxEd v1.6 fpl.library v12.1
  13. ############################################
  14.  
  15. FUNCTION
  16.   This little hack gives you a shell in a FrexxEd buffer. It includes a nice
  17.  file name completion feature (assigned to TAB).
  18.  When started, this scripts opens a new buffer, sets up a shell environment
  19.  for it and does a little echo. From now on you may use it as a real shell.
  20.  You enter commands BEHIND the prompt "Sys:>" and get the output.
  21.  To quit this little shell, simply kill the buffer. There is no real shell
  22.  behind it´s functionality.
  23.  
  24. REQUIREMENTS
  25.  You need a fpl.library supporting string catenation with "+". This works
  26.  since version 12.1.
  27.  You need a path to the following commands:
  28.  - Execute
  29.  - Delete
  30.  It might be useful to have these commands resident.
  31.  
  32. COMMENT
  33.  FrexxShell uses four temporary files:
  34.   FConCmd_xxx - the command script
  35.   FConOut_xxx - the commands output
  36.   FConDir_xxx - the current dir after execution
  37.   FConErr_xxx - error messages
  38.  Although temp file names are unique you can´t run two shell buffers from
  39.  the same FrexxEd session. This would require all variables to be local
  40.  info vars. In my opinion, this is not very useful.
  41.  The output (FConOut) is deleted after it has been loaded into Fred because it
  42.  can get very long (try "list SYS: ALL"). All other files remain. I tried to
  43.  get them deleted too, but somehow FrexxEd crashed everytime I did.
  44.  You shouldn´t mind it since they all sum to a total of 7 lines (maximum).
  45.  
  46.  FrexxShell searches the last line of the buffer for ">". This char marks
  47.  the end of prompt. You may change any contents of shell buffer, but commands
  48.  are only executed if enterd behind that first ">".
  49.  
  50.  FrexxShell assigns it´s routine to the "Enter" key (means "Return" too). It
  51.  simply does a Output("\n") if the current buffer is not the shell buffer.
  52.  I wanted to execute the old function of this key, but KeyPress() seems not
  53.  to work by now.
  54.  
  55. BUGS
  56.  1) You can´t use interactive input. This should not be a real problem since
  57.     FrexxShell redirects all input to NIL:. So all that happens if you
  58.     type "DIR ?" is what happens you if press Return on every request in a
  59.     real shell.
  60.  2) You can´t get a return code. Since FrexxShell has to know the current
  61.     directory after execution of the command line (might be "cd ram:"), it
  62.     does a "cd" directly after command execution. To get information about
  63.     failed statements all error outputs are displayed.
  64.  3) You should never re-use a shell buffer for normal text editing since
  65.     every time you press Return the last line will be interpreted as a shell
  66.     command.
  67.  4) FrexxShell should not be run twice from the same FrexxEd.
  68.  5) Since there is no real shell behind it, no Shell-Startup, Aliases or
  69.     local variables are possible.
  70.  6) Change count is reset after each command to avoid that annoying requester
  71.     if you quit a FrexxShell buffer.
  72.  7) If you quit one Buffer and open a new directly after chances are high to
  73.     get the same buffer id again. So you get a new shell without calling
  74.     FrexxShell.FPL for that new buffer. This could be solved by hooking into
  75.     Quit(). I´ll surely add this when KeyPress() gets fixed, which is required
  76.     for a real clean-up.
  77.  
  78. FUTURE
  79.  - Proper clean-up: Will be done when KeyPress() works finally.
  80.